home *** CD-ROM | disk | FTP | other *** search
/ Overshadow 30 / Overshadow_30_2005-02-21_Angels.d64 / formula oversrc < prev    next >
Text File  |  2023-02-26  |  4KB  |  147 lines

  1.  
  2.  
  3.  ; 1-bLOCK-fAST-2X-ora-"fULLSCREEN"-dYCPER BY nINJA / tHE dREAMS IN 2004
  4.  
  5.  
  6.  
  7.               INCLUDE STANDARD.C64
  8.  
  9.  
  10.  
  11. PLOT_PNT      = $22
  12.  
  13. TEXT_PNT      = $35
  14.  
  15. DYCP_NR       = $66
  16.  
  17. SIN_BAS       = $78
  18.  
  19. SIN_CNT       = $80         ; SIN_CNT2 BETWEEN $80 AND $C0,
  20.  
  21. KEY_INDEX     = $C5         ; DEPENDING ON PRESSED KEY
  22.  
  23. TEXT_CNT      = $FB
  24.  
  25.  
  26.  
  27. SIN_DAT       = $0A00
  28.  
  29.  
  30.  
  31.               ORG $0801
  32.  
  33.  
  34.  
  35.              IF 0
  36.  
  37.               252 FORN=1TO259:POKE2559+N,(COS(N/20.3)+1)*99:NEXT:SYS2095
  38.  
  39.              ENDIF
  40.  
  41.               BINCLUDE "C64_SRC\DYCP1BLK.BAS",2
  42.  
  43.  
  44.  
  45.               ORG *-2
  46.  
  47. JMP_IN:
  48.  
  49.               LDX #0
  50.  
  51.               CLC
  52.  
  53.               LDA #$A1
  54.  
  55.               STA TEXT_PNT+1
  56.  
  57.               STA $D021                   ; WORK AROUND OLD-KERNAL BUG
  58.  
  59. MAKE_SCR_L2:
  60.  
  61.               JSR $E9FF                   ; SET $D1 & COLOR-RAM FOR LINE X
  62.  
  63.               TXA
  64.  
  65. MAKE_SCR_L1:
  66.  
  67.               INY
  68.  
  69.               STA ($D1),Y
  70.  
  71.               ADC #5
  72.  
  73.               BCC MAKE_SCR_L1
  74.  
  75.               INX
  76.  
  77.               CPX #25
  78.  
  79.               BCC MAKE_SCR_L2
  80.  
  81.               JSR $E5A0                   ; RESTORE KERNAL COLORS
  82.  
  83.               LDX #$2E
  84.  
  85. ENDLESS:
  86.  
  87.               LDA #$37
  88.  
  89.               STA $01
  90.  
  91.               LDY $D012                   ; $FF5E IS TOO SLOW
  92.  
  93.               BNE *-3
  94.  
  95.               LDA PLOT_PNT+1
  96.  
  97.               LSR
  98.  
  99.               LSR
  100.  
  101.               ORA #$10
  102.  
  103.               STA $D018                   ; WE USE DOUBLE-BUFFERING
  104.  
  105.  
  106.  
  107.               LDA $D016
  108.  
  109.               CMP #$C2
  110.  
  111.               PHA
  112.  
  113.               LDA #$80                    ; ADJUST SINE-OFFSET WHEN
  114.  
  115.               ROL                         ; HARDSCROLLING IS NEAR
  116.  
  117.               STA HARD_MOD+1              ; (REMEMBER DOUBLE-BUFFERING!)
  118.  
  119.               PLA
  120.  
  121.               SBC #1
  122.  
  123.               AND #7
  124.  
  125.               STA $D016
  126.  
  127.               BNE NO_HARDSCROLL
  128.  
  129.               JSR $B69A                   ; A=0, C=1 -> INCREASE TEXT_PNT
  130.  
  131.               INC SIN_BAS                 ; SIN_BAS=$78=SEI
  132.  
  133. NO_HARDSCROLL = *-1                       ; =VERY DIRTY, BUT WORKS!
  134.  
  135.               LSR $01
  136.  
  137.               LDA #$100-48
  138.  
  139.               STA TEXT_CNT
  140.  
  141.               LDA #$38
  142.  
  143.               STA PLOT_PNT
  144.  
  145.               TXA                         ; Y=0, X=TEXT_PNT+1
  146.  
  147.               EOR #($3E!$27)
  148.  
  149.               STA PLOT_PNT+1
  150.  
  151.               INC SIN_BAS
  152.  
  153.               LDA SIN_BAS
  154.  
  155.               STA SIN_CNT
  156.  
  157.               ADC #4-1
  158.  
  159.               LDX KEY_INDEX              ; SUPPORT ALL KEYS -> LUXURY :)
  160.  
  161.               STA SIN_CNT,X
  162.  
  163. PLOT_L2:
  164.  
  165.               LDA #0
  166.  
  167.               LDX SIN_CNT,Y
  168.  
  169.               INX
  170.  
  171.               STX SIN_CNT,Y
  172.  
  173. HARD_MOD:     LDY SIN_DAT+1,X
  174.  
  175.  
  176.  
  177.               STA (PLOT_PNT),Y
  178.  
  179.               INY
  180.  
  181.               STA (PLOT_PNT),Y
  182.  
  183.               INY
  184.  
  185.               STA (PLOT_PNT),Y
  186.  
  187.               INY
  188.  
  189.               STA (PLOT_PNT),Y
  190.  
  191.               INY
  192.  
  193.               STA (PLOT_PNT),Y
  194.  
  195.               INY
  196.  
  197.               STA (PLOT_PNT),Y
  198.  
  199.               INY
  200.  
  201.               STA (PLOT_PNT),Y
  202.  
  203.               INY                         ; LOOP IS TOO SLOW, WOULD SPOIL
  204.  
  205.               STA (PLOT_PNT),Y            ; THE 1 FRAME/DYCP RATIO
  206.  
  207.               LDA KEY_INDEX
  208.  
  209.               EOR DYCP_NR
  210.  
  211.               STA DYCP_NR
  212.  
  213.               TAY
  214.  
  215.               BNE PLOT_L2
  216.  
  217.               BYT $2C
  218.  
  219. PLOT_L5:
  220.  
  221.               DEC TEXT_PNT+1              ; USE DIFFERENT TEXT FOR 2ND DYCP
  222.  
  223.               LDX SIN_CNT,Y
  224.  
  225.               LDY TEXT_CNT
  226.  
  227.               LDA (TEXT_PNT),Y
  228.  
  229.               LDY SIN_DAT+3,X
  230.  
  231.               ASL
  232.  
  233.               ASL
  234.  
  235.               ASL
  236.  
  237.               TAX
  238.  
  239.               LDA #($D0>>1)
  240.  
  241.               ROL
  242.  
  243.               STA PLOT_MOD+2              ; WE CAN DISPLAY 64 CHARS
  244.  
  245. PLOT_L1:
  246.  
  247. PLOT_MOD:     LDA $D000,X
  248.  
  249.               ORA (PLOT_PNT),Y
  250.  
  251.               STA (PLOT_PNT),Y
  252.  
  253.               INX
  254.  
  255.               INY
  256.  
  257.               TXA
  258.  
  259.               AND #7
  260.  
  261.               BNE PLOT_L1
  262.  
  263.               LDA KEY_INDEX
  264.  
  265.               BEQ SKIP_ALTTEXT
  266.  
  267.               EOR DYCP_NR
  268.  
  269.               STA DYCP_NR
  270.  
  271.               TAY
  272.  
  273.               BNE PLOT_L5
  274.  
  275.               INC TEXT_PNT+1
  276.  
  277. SKIP_ALTTEXT:
  278.  
  279.               LDA #$28
  280.  
  281.               JSR $B5F9                   ; UPDATE PLOT_PNT, SETS X
  282.  
  283.               INC TEXT_CNT
  284.  
  285.               BNE PLOT_L2
  286.  
  287.               JMP ENDLESS
  288.  
  289.  
  290.  
  291.               END $0801
  292.  
  293.